package org.byqh.dqeai.entity.proxy;

import com.easy.query.core.expression.parser.core.available.TableAvailable;
import com.easy.query.core.proxy.AbstractProxyEntity;
import com.easy.query.core.proxy.SQLColumn;
import com.easy.query.core.proxy.SQLSelectAsExpression;
import com.easy.query.core.proxy.fetcher.AbstractFetcher;
import com.easy.query.core.proxy.core.EntitySQLContext;
import org.byqh.dqeai.entity.SysOpLog;
import com.easy.query.core.proxy.columns.types.SQLStringTypeColumn;
import com.easy.query.core.proxy.columns.types.SQLLocalDateTimeTypeColumn;

/**
 * this file automatically generated by easy-query, don't modify it
 * 当前文件是easy-query自动生成的请不要随意修改
 * 如果出现属性冲突请使用@ProxyProperty进行重命名
 *
 * @author easy-query
 */
public class SysOpLogProxy extends AbstractProxyEntity<SysOpLogProxy, SysOpLog> {

    private static final Class<SysOpLog> entityClass = SysOpLog.class;

    public static final SysOpLogProxy TABLE = createTable().createEmpty();

    public static SysOpLogProxy createTable() {
        return new SysOpLogProxy();
    }

    public SysOpLogProxy() {
    }

    /**
     * 日志ID
     * {@link SysOpLog#getLogId}
     */
    public SQLStringTypeColumn<SysOpLogProxy> logId() {
        return getStringTypeColumn("logId");
    }

    /**
     * 用户帐号
     * {@link SysOpLog#getUserCode}
     */
    public SQLStringTypeColumn<SysOpLogProxy> userCode() {
        return getStringTypeColumn("userCode");
    }

    /**
     * 操作时间
     * {@link SysOpLog#getOpTime}
     */
    public SQLLocalDateTimeTypeColumn<SysOpLogProxy> opTime() {
        return getLocalDateTimeTypeColumn("opTime");
    }

    /**
     * 操作模块分类ID
     * {@link SysOpLog#getOpCategory}
     */
    public SQLStringTypeColumn<SysOpLogProxy> opCategory() {
        return getStringTypeColumn("opCategory");
    }

    /**
     * 操作模块ID
     * {@link SysOpLog#getOpModule}
     */
    public SQLStringTypeColumn<SysOpLogProxy> opModule() {
        return getStringTypeColumn("opModule");
    }

    /**
     * 操作模块描述
     * {@link SysOpLog#getOpDes}
     */
    public SQLStringTypeColumn<SysOpLogProxy> opDes() {
        return getStringTypeColumn("opDes");
    }

    /**
     * 应用ID
     * {@link SysOpLog#getAppId}
     */
    public SQLStringTypeColumn<SysOpLogProxy> appId() {
        return getStringTypeColumn("appId");
    }

    /**
     * 用户IP地址
     * {@link SysOpLog#getUserIp}
     */
    public SQLStringTypeColumn<SysOpLogProxy> userIp() {
        return getStringTypeColumn("userIp");
    }

    /**
     * 备注信息
     * {@link SysOpLog#getRemarks}
     */
    public SQLStringTypeColumn<SysOpLogProxy> remarks() {
        return getStringTypeColumn("remarks");
    }

    /**
     * {@link SysOpLog#getUserName}
     */
    public SQLStringTypeColumn<SysOpLogProxy> userName() {
        return getStringTypeColumn("userName");
    }

    /**
     * {@link SysOpLog#getUserDept}
     */
    public SQLStringTypeColumn<SysOpLogProxy> userDept() {
        return getStringTypeColumn("userDept");
    }

    @Override
    public Class<SysOpLog> getEntityClass() {
        return entityClass;
    }

    /**
     * 数据库列的简单获取
     *
     * @return
     */
    public SysOpLogProxyFetcher FETCHER = new SysOpLogProxyFetcher(this, null, SQLSelectAsExpression.empty);

    public static class SysOpLogProxyFetcher extends AbstractFetcher<SysOpLogProxy, SysOpLog, SysOpLogProxyFetcher> {

        public SysOpLogProxyFetcher(SysOpLogProxy proxy, SysOpLogProxyFetcher prev, SQLSelectAsExpression sqlSelectAsExpression) {
            super(proxy, prev, sqlSelectAsExpression);
        }

        /**
         * 日志ID
         * {@link SysOpLog#getLogId}
         */
        public SysOpLogProxyFetcher logId() {
            return add(getProxy().logId());
        }

        /**
         * 用户帐号
         * {@link SysOpLog#getUserCode}
         */
        public SysOpLogProxyFetcher userCode() {
            return add(getProxy().userCode());
        }

        /**
         * 操作时间
         * {@link SysOpLog#getOpTime}
         */
        public SysOpLogProxyFetcher opTime() {
            return add(getProxy().opTime());
        }

        /**
         * 操作模块分类ID
         * {@link SysOpLog#getOpCategory}
         */
        public SysOpLogProxyFetcher opCategory() {
            return add(getProxy().opCategory());
        }

        /**
         * 操作模块ID
         * {@link SysOpLog#getOpModule}
         */
        public SysOpLogProxyFetcher opModule() {
            return add(getProxy().opModule());
        }

        /**
         * 操作模块描述
         * {@link SysOpLog#getOpDes}
         */
        public SysOpLogProxyFetcher opDes() {
            return add(getProxy().opDes());
        }

        /**
         * 应用ID
         * {@link SysOpLog#getAppId}
         */
        public SysOpLogProxyFetcher appId() {
            return add(getProxy().appId());
        }

        /**
         * 用户IP地址
         * {@link SysOpLog#getUserIp}
         */
        public SysOpLogProxyFetcher userIp() {
            return add(getProxy().userIp());
        }

        /**
         * 备注信息
         * {@link SysOpLog#getRemarks}
         */
        public SysOpLogProxyFetcher remarks() {
            return add(getProxy().remarks());
        }

        /**
         * {@link SysOpLog#getUserName}
         */
        public SysOpLogProxyFetcher userName() {
            return add(getProxy().userName());
        }

        /**
         * {@link SysOpLog#getUserDept}
         */
        public SysOpLogProxyFetcher userDept() {
            return add(getProxy().userDept());
        }

        @Override
        protected SysOpLogProxyFetcher createFetcher(SysOpLogProxy cp, AbstractFetcher<SysOpLogProxy, SysOpLog, SysOpLogProxyFetcher> prev, SQLSelectAsExpression sqlSelectExpression) {
            return new SysOpLogProxyFetcher(cp, this, sqlSelectExpression);
        }
    }
}
